package mx.com.crowdgine;

import mx.com.crowdgine.assetloader.Asset;
import mx.com.crowdgine.camera.*;
import mx.com.crowdgine.crowds.CrowdSystem;
import mx.com.crowdgine.display.Renderer;
import mx.com.crowdgine.entity.Entity;
import mx.com.crowdgine.particlesystem.ParticleSystem;

public class Crowdgine {
	
	private Renderer renderer;
	
	public Crowdgine() {
		// subsystem initialization
		//renderer = new JoglRenderer();
		renderer.setCamera(new JoglCamera());
	}
	
	public void addEntity(Entity entity) {
		this.renderer.addEntity(entity);
	}
	
	public Object getDrawableImplementation() {
		return this.renderer.getDrawableImplementation();
	}
	
	public void addParticleSystem(ParticleSystem particleSystem) {
		this.renderer.addParticleSystem(particleSystem);
	}
	
	public void addCrowdSystem(CrowdSystem crowdSystem){
		this.renderer.addCrowdSystem(crowdSystem);
	}
	
	public void addAsset(Asset asset) {
		this.renderer.addAsset(asset);
	}
	
	public void start() {
		this.renderer.beginRenderingLoop();
	}
	
}
